package com.crm.model.mdao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.crm.model.pojo.Customer;

/**
 * 客户mybatisDAO
 * @author Menghui
 *
 */
@Mapper
public interface CustomerMapper {

	/**
	 * 查询全部客户信息(权限)
	 * @return
	 */
	List<Map<String, String>> selectAllCustomer(@Param("uid") Integer uid,@Param("deptid") Integer deptid);
	
	//查询全部客户信息
	List<Map<String, String>> selectAllCustomer2();
	
	//查询客户姓名
	List<Map<String, String>> selectCustName();
	
	/**
	 * 条件查询
	 * @param cname 客户名字
	 * @param ctype 客户种类
	 * @param csort 客户类型
	 * @param csource 客户来源
	 * @Param("custid") String custid //客户编号
	 * @return
	 */
	
	//客户种类
	List<Map<String, String>> selectByctype(@Param("ctype") Integer ctype);
	
	//客户类型
	List<Map<String, String>> selectBycsort(@Param("csort") Integer csort);
	
	//客户来源
	List<Map<String, String>> selectBycsource(@Param("csource") Integer csource);
	
	//模糊查询客户名称
	List<Map<String, String>> selectBycustName(@Param("cname") String cname);
		
	//删除客户
	public int deleteCustomer(@Param("custId") Integer custId);
	
	//修改客户信息
	public int updateCustomer(@Param("customer") Customer customer);
	
	//查询单条
	public Map<String, String> selectById(@Param("custId") Integer custId);
	
	/**
	 * 转移客户
	 * @param client
	 * @param idss
	 * @return
	 */
	public int updateClient2(@Param("client") Integer client,
			@Param("idss") Integer idss);
	
	//将普通修改成为公海
	public int updateSea(@Param("custId") Integer custId);
	
	//将公海修改成普通
	public int updateTransfer(@Param("custId") Integer custId);
	
	//智能合并
	public List<Customer> IntellMerger();
	
	 int deleteByPrimaryKey(Integer custId);

	    int insert(com.crm.model.mpojo.Customer record);

	    int insertSelective(com.crm.model.mpojo.Customer record);

	    com.crm.model.mpojo.Customer selectByPrimaryKey(Integer custId);

	    int updateByPrimaryKeySelective(com.crm.model.mpojo.Customer record);

	    int updateByPrimaryKey(Customer record);
}
